package com.toycloud.business.service;


import com.toycloud.system.domain.SysUploadTask;
import com.toycloud.system.domain.bo.InitTaskParam;
import com.toycloud.system.domain.dto.TaskInfoDTO;
import com.toycloud.system.domain.vo.SysOssVo;

/**
 * 文件分片上传任务 服务层
 *
 * @author rrge
 */
public interface ISysUploadTaskService {

    /**
     * 根据md5标识获取分片上传任务
     * @param identifier
     * @return
     */
    SysUploadTask getByIdentifier(String identifier);

    /**
     * 初始化一个任务
     */
    TaskInfoDTO initTask(InitTaskParam param);

    /**
     * 获取文件地址
     * @param objectKey
     * @return
     */
    String getPath(String objectKey);

    /**
     * 生成预签名上传url
     * @param objectKey 桶名
     * @param uploadId 创建分片上传请求, 返回 UploadId
     * @param partNumber 分片号
     * @return
     */
    String genPreSignUploadUrl(String objectKey, String uploadId, int partNumber);

    /**
     * 合并分片
     * @param identifier
     */
    SysOssVo merge(String identifier);

}
